/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.apli.haiam.ejb.entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.Lob;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 *
 * @author david.carranza
 */
@Entity
@Table(name = "cex_consulta")
@NamedQueries({
    @NamedQuery(name = "CexConsulta.findAll", query = "SELECT c FROM CexConsulta c")})
public class CexConsulta implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "cco_id")
    private Integer ccoId;
    @Column(name = "cco_motivo_consulta")
    private String ccoMotivoConsulta;
    @Column(name = "cco_enfermedad")
    private String ccoEnfermedad;
    @Column(name = "cco_evolucion")
    private String ccoEvolucion;
    @Basic(optional = false)
    @Column(name = "cco_periodicidad")
    private int ccoPeriodicidad;
    @Basic(optional = false)
    @Column(name = "cco_tipo_consulta")
    private int ccoTipoConsulta;
    @Basic(optional = false)
    @Column(name = "cco_id_usuario")
    private int ccoIdUsuario;
    @Basic(optional = false)
    @Column(name = "cco_nombre_usuario")
    private String ccoNombreUsuario;
    @Basic(optional = false)
    @Column(name = "cco_fecha")
    @Temporal(TemporalType.DATE)
    private Date ccoFecha;
    @Basic(optional = false)
    @Column(name = "cco_estado")
    private int ccoEstado;
    @Basic(optional = false)
    @Column(name = "cco_hora")
    @Temporal(TemporalType.TIME)
    private Date ccoHora;
    @Column(name = "cco_fecha_fin_atencion")
    @Temporal(TemporalType.DATE)
    private Date ccoFechaFinAtencion;
    @Column(name = "cco_hora_fin_atencion")
    @Temporal(TemporalType.TIME)
    private Date ccoHoraFinAtencion;
    @Column(name = "cco_estado_general")
    private Integer ccoEstadoGeneral;
    @Lob
    @Column(name = "cco_anexo")
    private byte[] ccoAnexo;
    @Column(name = "cco_observacion")
    private String ccoObservacion;
    @Column(name = "cco_renova")
    private Boolean ccoRenova;
    @Column(name = "cco_motivo_consulta_renova")
    private String ccoMotivoConsultaRenova;
    @Column(name = "cco_enfermedad_renova")
    private String ccoEnfermedadRenova;
    @Column(name = "cco_estado_general_renova")
    private Integer ccoEstadoGeneralRenova;
    @Column(name = "cco_prueba_diagnostica")
    private String ccoPruebaDiagnostica;
    @JoinTable(name = "cex_grupo_atencion_consulta", joinColumns = {
        @JoinColumn(name = "cco_id", referencedColumnName = "cco_id")}, inverseJoinColumns = {
        @JoinColumn(name = "cgr_id", referencedColumnName = "cgr_id")})
    @ManyToMany(fetch = FetchType.LAZY)
    private List<CexGrupoAtencion> cexGrupoAtencionList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexTratamientoConsulta> cexTratamientoConsultaList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<FarReceta> farRecetaList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexGeriatricoConsulta> cexGeriatricoConsultaList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexDiagnosticoConsulta> cexDiagnosticoConsultaList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexAntecedentesPatologicos> cexAntecedentesPatologicosList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexRevisionOrganos> cexRevisionOrganosList;
    @JoinColumn(name = "cpr_id", referencedColumnName = "cpr_id")
    @ManyToOne(fetch = FetchType.LAZY)
    private CexPreparacion cexPreparacion;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexEstudiosComplementarios> cexEstudiosComplementariosList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexAntecedentesFamiliares> cexAntecedentesFamiliaresList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexPedidoLaboratorio> cexPedidoLaboratorioList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<HosReferenciaContrareferencia> hosReferenciaContrareferenciaList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexPedidoRayos> cexPedidoRayosList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexConsultaTerapia> cexConsultaTerapiaList;
    @OneToMany(mappedBy = "cexConsulta", fetch = FetchType.LAZY)
    private List<CexExamenFisico> cexExamenFisicoList;
    //Campo para seleccionar la consulta
    @Transient
    private boolean seleccionar;

    public CexConsulta() {
    }

    public CexConsulta(Integer ccoId) {
        this.ccoId = ccoId;
    }

    public CexConsulta(Integer ccoId, int ccoPeriodicidad, int ccoTipoConsulta, int ccoIdUsuario, String ccoNombreUsuario, Date ccoFecha, int ccoEstado, Date ccoHora) {
        this.ccoId = ccoId;
        this.ccoPeriodicidad = ccoPeriodicidad;
        this.ccoTipoConsulta = ccoTipoConsulta;
        this.ccoIdUsuario = ccoIdUsuario;
        this.ccoNombreUsuario = ccoNombreUsuario;
        this.ccoFecha = ccoFecha;
        this.ccoEstado = ccoEstado;
        this.ccoHora = ccoHora;
    }

    public Integer getCcoId() {
        return ccoId;
    }

    public void setCcoId(Integer ccoId) {
        this.ccoId = ccoId;
    }

    public String getCcoMotivoConsulta() {
        return ccoMotivoConsulta;
    }

    public void setCcoMotivoConsulta(String ccoMotivoConsulta) {
        this.ccoMotivoConsulta = ccoMotivoConsulta;
    }

    public String getCcoEnfermedad() {
        return ccoEnfermedad;
    }

    public void setCcoEnfermedad(String ccoEnfermedad) {
        this.ccoEnfermedad = ccoEnfermedad;
    }

    public String getCcoEvolucion() {
        return ccoEvolucion;
    }

    public void setCcoEvolucion(String ccoEvolucion) {
        this.ccoEvolucion = ccoEvolucion;
    }

    public int getCcoPeriodicidad() {
        return ccoPeriodicidad;
    }

    public void setCcoPeriodicidad(int ccoPeriodicidad) {
        this.ccoPeriodicidad = ccoPeriodicidad;
    }

    public int getCcoTipoConsulta() {
        return ccoTipoConsulta;
    }

    public void setCcoTipoConsulta(int ccoTipoConsulta) {
        this.ccoTipoConsulta = ccoTipoConsulta;
    }

    public int getCcoIdUsuario() {
        return ccoIdUsuario;
    }

    public void setCcoIdUsuario(int ccoIdUsuario) {
        this.ccoIdUsuario = ccoIdUsuario;
    }

    public String getCcoNombreUsuario() {
        return ccoNombreUsuario;
    }

    public void setCcoNombreUsuario(String ccoNombreUsuario) {
        this.ccoNombreUsuario = ccoNombreUsuario;
    }

    public Date getCcoFecha() {
        return ccoFecha;
    }

    public void setCcoFecha(Date ccoFecha) {
        this.ccoFecha = ccoFecha;
    }

    public int getCcoEstado() {
        return ccoEstado;
    }

    public void setCcoEstado(int ccoEstado) {
        this.ccoEstado = ccoEstado;
    }

    public Date getCcoHora() {
        return ccoHora;
    }

    public void setCcoHora(Date ccoHora) {
        this.ccoHora = ccoHora;
    }

    public Date getCcoFechaFinAtencion() {
        return ccoFechaFinAtencion;
    }

    public void setCcoFechaFinAtencion(Date ccoFechaFinAtencion) {
        this.ccoFechaFinAtencion = ccoFechaFinAtencion;
    }

    public Date getCcoHoraFinAtencion() {
        return ccoHoraFinAtencion;
    }

    public void setCcoHoraFinAtencion(Date ccoHoraFinAtencion) {
        this.ccoHoraFinAtencion = ccoHoraFinAtencion;
    }

    public Integer getCcoEstadoGeneral() {
        return ccoEstadoGeneral;
    }

    public void setCcoEstadoGeneral(Integer ccoEstadoGeneral) {
        this.ccoEstadoGeneral = ccoEstadoGeneral;
    }

    public byte[] getCcoAnexo() {
        return ccoAnexo;
    }

    public void setCcoAnexo(byte[] ccoAnexo) {
        this.ccoAnexo = ccoAnexo;
    }

    public String getCcoObservacion() {
        return ccoObservacion;
    }

    public void setCcoObservacion(String ccoObservacion) {
        this.ccoObservacion = ccoObservacion;
    }

    public Boolean getCcoRenova() {
        return ccoRenova;
    }

    public void setCcoRenova(Boolean ccoRenova) {
        this.ccoRenova = ccoRenova;
    }

    public String getCcoMotivoConsultaRenova() {
        return ccoMotivoConsultaRenova;
    }

    public void setCcoMotivoConsultaRenova(String ccoMotivoConsultaRenova) {
        this.ccoMotivoConsultaRenova = ccoMotivoConsultaRenova;
    }

    public String getCcoEnfermedadRenova() {
        return ccoEnfermedadRenova;
    }

    public void setCcoEnfermedadRenova(String ccoEnfermedadRenova) {
        this.ccoEnfermedadRenova = ccoEnfermedadRenova;
    }

    public Integer getCcoEstadoGeneralRenova() {
        return ccoEstadoGeneralRenova;
    }

    public void setCcoEstadoGeneralRenova(Integer ccoEstadoGeneralRenova) {
        this.ccoEstadoGeneralRenova = ccoEstadoGeneralRenova;
    }

    public String getCcoPruebaDiagnostica() {
        return ccoPruebaDiagnostica;
    }

    public void setCcoPruebaDiagnostica(String ccoPruebaDiagnostica) {
        this.ccoPruebaDiagnostica = ccoPruebaDiagnostica;
    }

    public List<CexGrupoAtencion> getCexGrupoAtencionList() {
        return cexGrupoAtencionList;
    }

    public void setCexGrupoAtencionList(List<CexGrupoAtencion> cexGrupoAtencionList) {
        this.cexGrupoAtencionList = cexGrupoAtencionList;
    }

    public List<CexTratamientoConsulta> getCexTratamientoConsultaList() {
        return cexTratamientoConsultaList;
    }

    public void setCexTratamientoConsultaList(List<CexTratamientoConsulta> cexTratamientoConsultaList) {
        this.cexTratamientoConsultaList = cexTratamientoConsultaList;
    }

    public List<FarReceta> getFarRecetaList() {
        return farRecetaList;
    }

    public void setFarRecetaList(List<FarReceta> farRecetaList) {
        this.farRecetaList = farRecetaList;
    }

    public List<CexGeriatricoConsulta> getCexGeriatricoConsultaList() {
        return cexGeriatricoConsultaList;
    }

    public void setCexGeriatricoConsultaList(List<CexGeriatricoConsulta> cexGeriatricoConsultaList) {
        this.cexGeriatricoConsultaList = cexGeriatricoConsultaList;
    }

    public List<CexDiagnosticoConsulta> getCexDiagnosticoConsultaList() {
        return cexDiagnosticoConsultaList;
    }

    public void setCexDiagnosticoConsultaList(List<CexDiagnosticoConsulta> cexDiagnosticoConsultaList) {
        this.cexDiagnosticoConsultaList = cexDiagnosticoConsultaList;
    }

    public List<CexAntecedentesPatologicos> getCexAntecedentesPatologicosList() {
        return cexAntecedentesPatologicosList;
    }

    public void setCexAntecedentesPatologicosList(List<CexAntecedentesPatologicos> cexAntecedentesPatologicosList) {
        this.cexAntecedentesPatologicosList = cexAntecedentesPatologicosList;
    }

    public List<CexRevisionOrganos> getCexRevisionOrganosList() {
        return cexRevisionOrganosList;
    }

    public void setCexRevisionOrganosList(List<CexRevisionOrganos> cexRevisionOrganosList) {
        this.cexRevisionOrganosList = cexRevisionOrganosList;
    }

    public CexPreparacion getCexPreparacion() {
        return cexPreparacion;
    }

    public void setCexPreparacion(CexPreparacion cexPreparacion) {
        this.cexPreparacion = cexPreparacion;
    }

    public List<CexEstudiosComplementarios> getCexEstudiosComplementariosList() {
        return cexEstudiosComplementariosList;
    }

    public void setCexEstudiosComplementariosList(List<CexEstudiosComplementarios> cexEstudiosComplementariosList) {
        this.cexEstudiosComplementariosList = cexEstudiosComplementariosList;
    }

    public List<CexAntecedentesFamiliares> getCexAntecedentesFamiliaresList() {
        return cexAntecedentesFamiliaresList;
    }

    public void setCexAntecedentesFamiliaresList(List<CexAntecedentesFamiliares> cexAntecedentesFamiliaresList) {
        this.cexAntecedentesFamiliaresList = cexAntecedentesFamiliaresList;
    }

    public List<CexPedidoLaboratorio> getCexPedidoLaboratorioList() {
        return cexPedidoLaboratorioList;
    }

    public void setCexPedidoLaboratorioList(List<CexPedidoLaboratorio> cexPedidoLaboratorioList) {
        this.cexPedidoLaboratorioList = cexPedidoLaboratorioList;
    }

    public List<HosReferenciaContrareferencia> getHosReferenciaContrareferenciaList() {
        return hosReferenciaContrareferenciaList;
    }

    public void setHosReferenciaContrareferenciaList(List<HosReferenciaContrareferencia> hosReferenciaContrareferenciaList) {
        this.hosReferenciaContrareferenciaList = hosReferenciaContrareferenciaList;
    }

    public List<CexPedidoRayos> getCexPedidoRayosList() {
        return cexPedidoRayosList;
    }

    public void setCexPedidoRayosList(List<CexPedidoRayos> cexPedidoRayosList) {
        this.cexPedidoRayosList = cexPedidoRayosList;
    }

    public List<CexConsultaTerapia> getCexConsultaTerapiaList() {
        return cexConsultaTerapiaList;
    }

    public void setCexConsultaTerapiaList(List<CexConsultaTerapia> cexConsultaTerapiaList) {
        this.cexConsultaTerapiaList = cexConsultaTerapiaList;
    }

    public List<CexExamenFisico> getCexExamenFisicoList() {
        return cexExamenFisicoList;
    }

    public void setCexExamenFisicoList(List<CexExamenFisico> cexExamenFisicoList) {
        this.cexExamenFisicoList = cexExamenFisicoList;
    }

    public boolean isSeleccionar() {
        return seleccionar;
    }

    public void setSeleccionar(boolean seleccionar) {
        this.seleccionar = seleccionar;
    }
    
    

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (ccoId != null ? ccoId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CexConsulta)) {
            return false;
        }
        CexConsulta other = (CexConsulta) object;
        if ((this.ccoId == null && other.ccoId != null) || (this.ccoId != null && !this.ccoId.equals(other.ccoId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "newpackage.CexConsulta[ ccoId=" + ccoId + " ]";
    }

}
